package org.hbhk.hms.mq.tx.consumer;

import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface MqConsumer {
	/**
	 * 消息队列的服务器地址 如果没有设置，则使用全局设置
	 *
	 * @return
	 */
	String namesrvAddr() default "";

	/**
	 * 生产者组名 如果没有设置，则使用全局设置
	 *
	 * @return
	 */
	String groupName() ;

	/**
	 * 队列名
	 *
	 * @return
	 */
	String topic();

	/**
	 * 队列Tag
	 *
	 * @return
	 */
	String tags() default "*";

	/**
	 * 消费者线程池最小线程数
	 *
	 * @return
	 */
	int threadMin() default 4;

	/**
	 * 消费者线程池最大线程数
	 *
	 * @return
	 */
	int threadMax() default 16;

	/**
	 * 是否使用vip通道, 默认：ture
	 * 
	 * @return boolen
	 */
	boolean vipChannelEnabled() default true;

	/**
	 * 默认同时消费, 消费 模式
	 * 
	 * @return ConsumeMode
	 */
	ConsumeMode consumeMode() default ConsumeMode.CONCURRENTLY;

	/**
	 * 单元名
	 *
	 * @return
	 */
	String unitName() default "";

	/**
	 * 实例名
	 *
	 * @return
	 */
	String instanceName() default "DEFAULT";
}
